home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / jpi / program.bas < prev    next >
BASIC Source File  |  1998-01-29  |  13KB  |  299 lines

  1. Attribute VB_Name = "Program"
  2. Type ProgramDat
  3.   UsesSystemMemoryForBackbuffer As Boolean
  4. End Type
  5. Global ProgramData As ProgramDat
  6. Sub LoadVersion()
  7. Open Directory_GameData & GameEngine.GameDataFile$ For Input As #1
  8.   Line Input #1, a$
  9.   VERSION = MiscFunctions.GetPropertyValue(a$)
  10. Close #1
  11. End Sub
  12. Sub LoadGamePatch()
  13. ProgramData.UsesSystemMemoryForBackbuffer = MiscFunctions.ConvertTrueFalse(FileFunctions.GetPropertyValueFromFile(File_Patch, "UsesSystemMemoryForBackBuffer:"))
  14. End Sub
  15. Sub Initialize_Program()
  16. Call GameEngine.Initialize_GameEngine
  17. Call GameEngine.Initialize_GameWindows
  18. CHARACTER_QOUTE = Chr$(34)
  19. GameEngine.GameDataFile$ = Directory_DefaultGameData
  20. Call Math.InitializeTables
  21. Call ProcessCommandLineArguements
  22. Call LoadGamePatch
  23. Call LoadGameINI
  24. Call GraphicsEngine.OpenGraphicsDevice
  25. Call Sound.InitializeSound
  26. Call LoadJPIData
  27. Call LoadInGameConstants
  28. GameInterface.Mouse.CursorPic = SpriteStuff.GetPicIndex("CURSOR_SELECT")
  29. Call LoadVersion
  30. End Sub
  31. Sub LoadInGameConstants()
  32. InGameConstants(InGameConstant_PICINDEX_FontLib) = SpriteStuff.GetGraphicsLibIndex("Font")
  33. InGameConstants(InGameConstant_PICINDEX_MessageWindowPic) = SpriteStuff.GetPicIndex("MessageWindowPic")
  34. InGameConstants(InGameConstant_PICINDEX_ControlPanelBackground) = SpriteStuff.GetPicIndex("ControlPanelBackground")
  35. InGameConstants(InGameConstant_PICINDEX_ClearBackground) = SpriteStuff.GetPicIndex("ProgramBackground")
  36. InGameConstants(InGameConstant_PICINDEX_RadarBackground) = SpriteStuff.GetPicIndex("RadarBackground")
  37. InGameConstants(InGameConstant_PICINDEX_JPILogoRed) = SpriteStuff.GetPicIndex("JPILogoRed")
  38. InGameConstants(InGameConstant_PICINDEX_ProgramBackground) = SpriteStuff.GetPicIndex("InterfaceBackground")
  39. InGameConstants(InGameConstant_PICINDEX_RadarButtonPic) = SpriteStuff.GetPicIndex("RadarButton")
  40. InGameConstants(InGameConstant_PICINDEX_BuildDisabledPic) = SpriteStuff.GetPicIndex("BuildDisabledPic")
  41. InGameConstants(InGameConstant_PICINDEX_BuildReadyPic) = SpriteStuff.GetPicIndex("BuildReadyPic")
  42. InGameConstants(InGameConstant_PICINDEX_ButtonLarge) = SpriteStuff.GetPicIndex("INTERFACE_BUTTONLARGE")
  43. End Sub
  44. Sub LoadJPIData()
  45. Call SpriteStuff.LoadGraphicLibData
  46. Call SpriteStuff.LoadPictureData
  47. Call SpriteStuff.LoadSpriteData
  48. Call Music.InitializeMusic
  49. Call Entities.LoadMapImprints
  50. Call Sound.LoadSoundData
  51. Call Entities.LoadObjectData
  52. Call Map.LoadSeasonProfiles
  53. End Sub
  54. Sub Main()
  55. Call ProgramScript
  56. End Sub
  57. Sub LaunchAboutScreen()
  58. Call GameInterface.ClearMouseButtons
  59. texty = ResolutionMidY - 100 + 3
  60. Do
  61.   TextPos = 0
  62.   Call GraphicsEngine.ClearBackBuffer
  63.   Call GraphicsEngine.SplashGraphic(InGameConstants(InGameConstant_PICINDEX_ProgramBackground))
  64.   TextPos = TextPos + 1
  65.   TextPos = TextPos + 1
  66.   Call DisplayTextCenter("-xion is-", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  67.   TextPos = TextPos + 1
  68.   TextPos = TextPos + 1
  69.   Call DisplayTextCenter("Michael " & CHARACTER_QOUTE & "ZBAD" & CHARACTER_QOUTE & " Jennings", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  70.   TextPos = TextPos + 1
  71.   Call DisplayTextCenter("Programmer", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  72.   TextPos = TextPos + 1
  73.   Call DisplayTextCenter("3D Graphics", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  74.   TextPos = TextPos + 1
  75.   TextPos = TextPos + 1
  76.   Call DisplayTextCenter("John " & CHARACTER_QOUTE & "DARK" & CHARACTER_QOUTE & " Sampson", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  77.   TextPos = TextPos + 1
  78.   Call DisplayTextCenter("Game Design", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  79.   TextPos = TextPos + 1
  80.   Call DisplayTextCenter("Storyline", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  81.   TextPos = TextPos + 1
  82.   TextPos = TextPos + 1
  83.   Call DisplayTextCenter("-EXTREMELY special Thanks to-", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  84.   TextPos = TextPos + 1
  85.   Call DisplayTextCenter("Incredible help: Mark Davis", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  86.   TextPos = TextPos + 1
  87.   Call DisplayTextCenter("Beta tester: Dave Scouten", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  88.   Call GraphicsEngine.SwapScreen
  89.   DoEvents
  90.   If Mouse.ButtonStates(1) = True Then
  91.     Call GameInterface.ClearMouseButtons
  92.     Exit Do
  93.   End If
  94. Loop
  95.  
  96. Do
  97.   TextPos = 0
  98.   Call GraphicsEngine.ClearBackBuffer
  99.   Call GraphicsEngine.SplashGraphic(InGameConstants(InGameConstant_PICINDEX_ProgramBackground))
  100.   TextPos = TextPos + 1
  101.   TextPos = TextPos + 1
  102.   Call DisplayTextCenter("Very very special thanks:", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  103.   TextPos = TextPos + 1
  104.   TextPos = TextPos + 1
  105.   Call DisplayTextCenter("Dave " & CHARACTER_QOUTE & "ZoneMaster" & CHARACTER_QOUTE & " Scouten", texty + (TextPos * FONT_SPACINGY), PALLETE_YELLOW)
  106.   TextPos = TextPos + 1
  107.   TextPos = TextPos + 1
  108.   Call DisplayTextCenter("You have no idea how many times", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  109.   TextPos = TextPos + 1
  110.   Call DisplayTextCenter("he let me crash his computer and", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  111.   TextPos = TextPos + 1
  112.   Call DisplayTextCenter("didn't complain he he he", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  113.   TextPos = TextPos + 1
  114.   TextPos = TextPos + 1
  115.   Call DisplayTextCenter("PATRICE SCRIBE", texty + (TextPos * FONT_SPACINGY), PALLETE_YELLOW)
  116.   TextPos = TextPos + 1
  117.   Call DisplayTextCenter("for bringing directx", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  118.   TextPos = TextPos + 1
  119.   Call DisplayTextCenter("to visual basic", texty + (TextPos * FONT_SPACINGY), PALLETE_WHITE)
  120.   TextPos = TextPos + 1
  121.   TextPos = TextPos + 1
  122.   Call DisplayTextCenter("-Xion-", texty + (TextPos * FONT_SPACINGY), PALLETE_YELLOW)
  123.   
  124.   
  125.   Call GraphicsEngine.SwapScreen
  126.   DoEvents
  127.   If Mouse.ButtonStates(1) = True Then
  128.     Call GameInterface.ClearMouseButtons
  129.     Exit Do
  130.   End If
  131. Loop
  132.  
  133. End Sub
  134. Sub ShowInformation()
  135. WndTxt = ""
  136. WndTxt = WndTxt & "          -XION-          "
  137. WndTxt = WndTxt & "This is a beta version of "
  138. WndTxt = WndTxt & "     Jump-Point: Ion.     "
  139. WndTxt = WndTxt & "                          "
  140. WndTxt = WndTxt & "       ICQ: 3565855       "
  141. WndTxt = WndTxt & "   digital-zbad@usa.net   "
  142. Call PopupMessageWindow("JPI " & VERSION, WndTxt)
  143. End Sub
  144. Sub ProgramScript()
  145. Call Initialize_Program
  146. Call ShowLoadingScreen
  147. Call ShowInformation
  148. ProgScript:
  149. Call GameInterface.ClearMouseButtons
  150. MenuItemPressed = LaunchMainMenu
  151. Select Case MenuItemPressed
  152. Case 3
  153.   Call ShowLoadingScreen
  154.   Call GameEngine.StartNewGame(1, 1, FACTION_EDF)
  155.   GoTo ProgScript:
  156. Case 7
  157.   Call Internet.NewInternetGameConsole
  158.   GoTo ProgScript:
  159. Case 9
  160.   Call LaunchAboutScreen
  161.   GoTo ProgScript:
  162. Case 10
  163.   Call Program.QuitProgram
  164. Case Else
  165.   GoTo ProgScript:
  166. End Select
  167. End Sub
  168. Sub ShowLoadingScreen()
  169. Call GraphicsEngine.SplashGraphic(InGameConstants(InGameConstant_PICINDEX_ProgramBackground))
  170. MessageWindow.Caption = "JPI"
  171. MessageWindow.Text = "Loading..."
  172. Call GraphicsEngine.DisplayMessageWindow
  173. Call SwapScreen
  174. End Sub
  175.  
  176. Function LaunchMainMenu() As Integer
  177. Dim MenuInterface As GameInterface.InterfaceObj, ReturnedInterface As InterfaceReturnObj
  178. texty = (GameInterface.HALFINTERFACEHEIGHT - 95) + 1
  179. PicY = texty + (1 * FONT_SPACINGY) + (FONT_SPACINGY / 2)
  180. FontX = GameInterface.HALFINTERFACEWIDTH - 58
  181. FontY = (texty) + Pics(InGameConstants(InGameConstant_PICINDEX_JPILogoRed)).Height + 4
  182. BTNSIZE = FONT_SPACINGY - 1
  183. TEXTSPACING = FONT_SPACINGY + 3
  184. MenuInterface.BackgroundPic = InGameConstants(InGameConstant_PICINDEX_ProgramBackground)
  185. MenuInterface.Controls.ControlAmount = 13
  186. ControlNumber = ControlNumber + 1
  187. MenuInterface.Controls.ControlObjects(ControlNumber) = GameInterface.CreateControl(GameInterface.CONTROLTYPE_PICTUREBOX, GameInterface.HALFINTERFACEWIDTH, PicY, Pics(InGameConstants(InGameConstant_PICINDEX_JPILogoRed)).Width, Pics(InGameConstants(InGameConstant_PICINDEX_JPILogoRed)).Height, InGameConstants(InGameConstant_PICINDEX_JPILogoRed))
  188. ControlNumber = ControlNumber + 1: texty = FontY + (linenumber * TEXTSPACING): linenumber = linenumber + 1
  189. Text = "Single player